import sys
from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QVBoxLayout, QToolTip, QMessageBox
from PyQt5.QtGui import QPalette, QColor, QPixmap
from PyQt5.QtCore import Qt

class Example(QWidget):
    def __init__(self, parent=None):
        super(Example, self).__init__(parent)
        
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QLabel Example')
        self.setGeometry(300, 300, 400, 300)
        
        VLayout = QVBoxLayout()#创建一个垂直布局对象
        self.setLayout(VLayout)#将布局设置给窗口
        
        label1 = QLabel(self)#创建一个标签
        label1.setText("这是一个标签")#设置标签文本
        label1.setAutoFillBackground(True)#设置标签背景色
        label1.setPalette(QPalette(QColor(255, 255, 0)))#设置标签背景色为黄色
        label1.setToolTip("这是一个标签")#设置标签气泡提示
        label1.setAlignment(Qt.AlignCenter)#设置标签文本居中
        VLayout.addWidget(label1)#将标签添加到垂直布局中
        
        label2 = QLabel(self)#创建一个标签
        # label2.setText("<a href='#'>欢迎使用Python GUI编程</a>")#设置标签文本
        label2.setText("<a href='https://www.baidu.com'>欢迎使用Python GUI编程</a>")#设置标签文本
        label2.setOpenExternalLinks(True)#设置标签支持外部链接
        label2.setToolTip("这是一个超链接，点击跳转")#设置标签气泡提示
        label2.setAlignment(Qt.AlignCenter)#设置标签文本居中
        VLayout.addWidget(label2)#将标签添加到垂直布局中
        
        label3 = QLabel(self)
        label3.setText("<h1>这是一张图片</h1>")#设置标签文本为标题
        label3.setPixmap(QPixmap("./res/串口.png"))#设置标签文本为图片
        label3.setToolTip("这是一个图片")#设置标签气泡提示
        label3.setAlignment(Qt.AlignCenter)#设置标签文本居中
        VLayout.addWidget(label3)#将标签添加到垂直布局中
        
        #标签事件触发
        label4 = QLabel(self)
        label4.setText("<a href='#'>点击这里</a>")#设置标签文本
        label4.setToolTip("这是标签事件触发")#设置标签气泡提示
        label4.setAlignment(Qt.AlignCenter)#设置标签文本居中
        # label4.linkActivated.connect(lambda:QMessageBox.information(self, "提示", "你点击了标签"))#连接标签点击事件
        label4.linkActivated.connect(lambda:QMessageBox.question(self, "提示", "你点击了标签", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes))#连接标签点击事件
        VLayout.addWidget(label4)#将标签添加到垂直布局中

if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = Example()
    w.show()
    sys.exit(app.exec_())